// pages/partner/partner.js
const db = wx.cloud.database({
  env: 'nzxyb-5gsp2tia41c3b11d'
})
Page({

  /**
   * 页面的初始数据
   */
  data: {
    daiJieDanData: [], //订单数据
    daiPeiSongData: [], //配送数据
    orderOverData: [], //订单完成数据
  },

  /* *****************************方法集合**************************** */

  //获取待接单数据
  getDaiJieDanData() {
    db.collection("t_order").where({ //获取数据库所有订单数据
      isOrder:0,
    }).get({
      success: (res) => {
        this.setData({ //渲染订单数据
          daiJieDanData: res.data
        })
        console.log("partner：获取接单数据成功", res)
      },
      fail: (res) => {
        wx.showToast({
          title: '获取接单数据失败',
          icon: "error"
        })
        console.log("partner：获取接单数据失败", res)
      }
    })
  },

  //获取待配送数据
  getDaiPeiSongData() {
    //获取用户待配送数据
    db.collection("t_order").where({
      partnerUserInfo:{openid :wx.getStorageSync('openid')},
      isOrder: 1
    }).get({
      success: (res) => { //获取成功
        this.setData({
          daiPeiSongData: res.data
        })
        console.log("partner：待配送数据获取成功", res)
      },
      fail: (res) => { //获取失败
        console.log("partner：待配送数据获取成功", res)
        wx.showToast({
          title: '配送数据获取失败',
          icon: "error"
        })
      }
    })
  },

  //获取订单完成数据
  getOrderOverData() {
    //获取用户待配送数据
    db.collection("t_order").where({
      ["partnerUserInfo.openid"]: wx.getStorageSync('openid'),
      isOrder: 2
    }).get({
      success: (res) => { //获取成功
        this.setData({
          orderOverData: res.data
        })
        console.log("partner：订单完成数据获取成功", res)
      },
      fail: (res) => { //获取失败
        console.log("partner：订单完成数据获取失败", res)
        wx.showToast({
          title: '订单数据获取失败',
          icon: "error"
        })
      }
    })
  },

  //点击tab
  clickTap(e) {
    if (e.detail.name == "clickDaiJieDan") { //点击待接单
      this.getDaiJieDanData()
    } else if (e.detail.name == "clickDaiPeiSong") { //点击待配送
      this.getDaiPeiSongData()
    } else if (e.detail.name == "clickOrderOver") { //点击订单完成
      this.getOrderOverData()
    }
  },

  //监听待配送的取消按钮
  clickDaiPeiSongCancel(e) {
    const _ = db.command
    db.collection('t_order').doc(e.target.id).update({ //
      data: {
        isOrder: 0, //改为待接单状态
        partnerTime: _.remove(), //删除接单时间
        partnerUserInfo: _.remove()//删除接单人信息
      },
      success: (res) => { //取消成功
        wx.showToast({
          title: '取消成功',
          mask: true
        })
        this.getDaiPeiSongData()
        console.log("partner：取消接单成功（修改数据库数据成功）", res)
      },
      fail: (res) => { //取消失败
        wx.showToast({
          title: '取消失败',
          mask: true
        })
        console.log("partner：取消接单失败（修改数据库数据失败）", res)
      }
    })
  },

  //监听待配送的完成按钮
  clickDaiPeiSongOver(e) {
    //选择照片
    wx.chooseImage({
      count: 1,
      success:(res)=>{//配送完成选择照片成功
        //上传照片到云存储
        wx.cloud.uploadFile({
          cloudPath:e.target.id,
          filePath:res.tempFilePaths[0],
          success:(res)=>{//上传照片到云存储成功
            //修改订单数据（保存照片，修改订单状态）
            db.collection('t_order').doc(e.target.id).update({
              data:{
                isOrder:2,
                orderOverImg:res.fileID
              },
              success:(res)=>{//订单完成修改订单数据成功
                this.getDaiPeiSongData()//刷新配送数据
                wx.showToast({
                  title: '已完成',
                })
                console.log("partner:订单完成修改订单数据成功",res)
              },
              fail:(res)=>{//订单完成修改订单数据失败
                wx.showToast({
                  title: '完成失败',
                  icon:'error'
                })
                console.log("partner:订单完成修改订单数据失败",res)
              }
            })
            console.log("partner：上传照片到云存储成功",res)
          },
          fail:(res)=>{//上传照片到云存储失败
            console.log("partner:上传照片到云存储失败",res)
          }
        })
        console.log("partner：配送完成选择照片成功",res)
      },
      fail:(res)=>{//配送完成选择照片失败
        console.log("partner：配送完成选择照片失败",res)
      }
    })
  },

  //监听待接单的接单按钮
  clickDaiJieDanJieDan(e) {
    db.collection('t_order').doc(e.target.id).update({ //
      data: {
        isOrder: 1, //改为接单状态
        partnerTime: new Date().toLocaleString(), //接单时间
        partnerUserInfo: {
          openid: wx.getStorageSync('openid'), //接单人标志
          partnerHeadImg: wx.getStorageSync('userHeadImg'), //接单人头像
          partneruserName: wx.getStorageSync('username') //接单用户名
        }
      },
      success: (res) => { //接单成功
        wx.showToast({
          title: '接单成功',
          mask: true
        })
        this.getDaiJieDanData()
        console.log("partner：接单成功（修改数据库数据成功）", res)
      },
      fail: (res) => { //接单失败
        wx.showToast({
          title: '接单失败',
          mask: true
        })
        console.log("partner：接单失败（修改数据库数据失败）", res)
      }
    })
  },

  //监听订单完成的详情按钮
  clickOrderOverDetail(e){
    //跳转partnerDetail页面
    wx.navigateTo({
      url: `/views/partnerDetail/partnerDetail?_id=${e.target.id}`,
    })
  },



  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    if (!wx.getStorageSync('userState')) { //拦截未登录用户
      wx.showToast({ //弹窗提示
        title: '请先登录',
        icon: 'error',
        mask: true,
        duration: 4000,
        complete() {
          wx.switchTab({ //跳转登录界面
            url: '/pages/mine/mine',
          })
        }
      })
    } else if (!wx.getStorageSync('isOrder')) { //接单权限
      wx.showToast({
        title: '暂无权限',
        duration: 4000,
        complete() {
          wx.switchTab({ //跳转首页下单界面
            url: '/pages/index/index',
          })
        }
      })
    }

    //初始化数据
    this.getDaiPeiSongData()
  },
})